package com.silence.thread;

public class ThreadMain {
    // main 方法由一条默认的主线程负责执行
    public static void main(String[] args) throws Exception {
        // 1
        Thread t = new MyThread("hellowww");
        t.start(); // main线程 + t线程

        // 2
//        MyRunnable myRunnable = new MyRunnable();
//        Thread thread_runnable = new Thread(myRunnable);
//        thread_runnable.start();

//        Runnable myRunnable2 = new Runnable() {
//            @Override
//            public void run() {
//                for (int i = 1; i <= 5; i++) {
//                    System.out.println("Runnable匿名内部类写法1");
//                }
//            }
//        };
//        new Thread(myRunnable2).start();
        // 简化形式1
//        new Thread(new Runnable() {
//            @Override
//            public void run() {
//                for (int i = 1; i <= 5; i++) {
//                    System.out.println("Runnable匿名内部类写法2");
//                }
//            }
//        }).start();
        // 简化方式2
        new Thread(() -> {
            for (int i = 1; i <= 5; i++) {
                System.out.println("Runnable匿名内部类写法3");
            }
        },"Runnable匿名2简化").start();

        // 3
//        Callable<Integer> callable = new MyCallable(50);
//
//        FutureTask<Integer> futureTask = new FutureTask<Integer>(callable);
//        new Thread(futureTask).start();
//        System.out.println(futureTask.get());

        for (int i = 1; i <= 5; i++) {
            System.out.println("MainThread sout:" + i);
        }
    }
}
